import com.itheima.Cat;

import java.lang.reflect.Field;

public class Task {

    public static void main(String[] args) throws Exception {
        testGetFields();
    }

    public static void testGetFields() throws Exception {
        // 1、反射第一步：必须是先得到类的Class对象
        Class<?> c = Cat.class;
        // 2、获取类的全部成员变量。
        Field[] fields /* TODO 获取全部成员变量 */;
        // 3、遍历这个成员变量数组
        for (Field field : fields) {
            System.out.printf("%s->%s%n", field.getName(), field.getType());
        }

        System.out.println("----------------------");

        // 4、定位某个成员变量
        Field fName /* TODO 获取类的成员变量 name */;
        System.out.printf("%s->%s%n", fName.getName(), fName.getType());

        Field fAge /* TODO 获取类的成员变量 age */;
        System.out.printf("%s->%s%n", fAge.getName(), fAge.getType());

        // 赋值
        Cat cat = new Cat();
        // 将cat的name修改为 英国短毛猫
        /* TODO 设置fName允许访问并为cat设置值 */
        System.out.println(cat);

        // 取值（取出cat的name属性值）
        String name /* TODO 通过反射获取cat的name属性值 */;
        System.out.println(name);
    }
}